<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui"
	xmlns:c="http://java.sun.com/jsp/jstl/core"
	template="web/templates/ui.xhtml">

	<ui:define name="title">
		<h:outputText value="Directivos" />
	</ui:define>
	<ui:define name="sidebar">
		<div class="widget">
			<div class="title">
				<div class="inner">
					<h3>
						<h:outputText value="Menú" />
					</h3>
				</div>
			</div>
			<!-- MENU PERFIL ADMINISTADOR -->
			<ui:include src="menu.xhtml" />
		</div>
	</ui:define>
	<ui:define name="content">
		<div class="page-header">
			<h3>
				<h:outputText value="Directivos" />
			</h3>
		</div>
		<div class="subTitle">
			<ol class="breadcrumb">
				<li><a href="index.jsf"><span
						class="glyphicon glyphicon-home"></span></a></li>
				<li class="active">Búsqueda</li>
			</ol>
		</div>
<!-- 		<div class="page-subheader titulopag">Relación de Directivos</div> -->
		<div class="gridContent">
			<div class="inner">
				<h:form id="frmDirectivo">
					<p:messages id="messages" />
					<div class="row">
						<div class="col-sm-12 form-group">
							<p:outputLabel id="lblCenso" value="Censo:" for="cboCenso" />
							<h:selectOneMenu styleClass="form-control" id="cboCenso" label="Text 3" value="#{directivoListadoService.cboCenso}" 
							disabled="#{!directivoListadoService.mostrarComboCenso}">								
								<f:selectItem itemLabel="Seleccionar" itemValue="-1" noSelectionOption="true" />
								<f:selectItems value="#{directivoListadoService.listaCensos}" var="censo" itemLabel="#{censo.nombre}" itemValue="#{censo.id}" />
								<p:ajax listener="#{directivoListadoService.onCensoChange}" />
							</h:selectOneMenu>
						</div>
					</div>
					<div class="row">
						<div class="col-sm-4 form-group">
							<p:outputLabel for="txtDNI" value="Documento de Identidad" />
							<div class="input-group">
								<p:inputMask id="txtDNI" value="#{directivoListadoService.txtDocumento}" required="false" maxlength="8"  onkeyup="$(this).val($(this).val().replace(/[^0-9]/g, ''));" 
								validatorMessage="El campo 'Documento de Identidad' solo acepta números.">
								</p:inputMask>
							</div>
						</div>
					</div>
					<div class="row">
						<div class="col-sm-4 form-group">
							<p:outputLabel value="Apellido Paterno" for="txtApePat" />
							<p:inputText id="txtApePat" value="#{directivoListadoService.txtApePat}"></p:inputText>
						</div>
						<div class="col-sm-4 form-group">
							<p:outputLabel value="Apellido Materno" for="txtApeMat" />
							<p:inputText id="txtApeMat" value="#{directivoListadoService.txtApeMat}"></p:inputText>
						</div>
						<div class="col-sm-4 form-group">
							<p:outputLabel value="Nombre(s)" for="txtNombres" />
							<p:inputText id="txtNombres" value="#{directivoListadoService.txtNombres}"></p:inputText>
						</div>
					</div>
					<c:if test="#{directivoListadoService.loginService.usuario.perfilId != 5}">
					<div class="row">
						<div class="col-sm-4 form-group">
							<p:outputLabel for="cboSector" value="Sector" />
							<h:selectOneMenu id="cboSector" value="#{directivoListadoService.cboSector}">
								<f:selectItem itemLabel="TODOS" itemValue="-1" noSelectionOption="true" />
								<f:selectItems value="#{directivoListadoService.listaSector}" var="entidad" itemLabel="#{entidad.nombre}" itemValue="#{entidad.id}" />
							</h:selectOneMenu>
						</div>
					</div>
					</c:if>
					<div class="row">
						<div class="col-sm-12 form-group">
								<p:outputLabel for="cboEntidad" value="Entidad" />
								<h:selectOneMenu id="cboEntidad" value="#{directivoListadoService.cboEntidad}" styleClass="form-control"
								disabled="#{!directivoListadoService.mostrarComboCenso}">
									<f:selectItem itemLabel="TODOS" itemValue="-1" noSelectionOption="true" />
									<f:selectItems value="#{directivoListadoService.listaEntidades}" var="entidad" itemLabel="#{entidad.nombre}" itemValue="#{entidad.id}" />
								</h:selectOneMenu>								
							</div>
					</div>
					
					<div class="row">
							<div class="col-sm-4 form-group">
								<p:outputLabel for="cboEstado" value="Estado" />
								<h:selectOneMenu id="cboEstado" styleClass="form-control" value="#{directivoListadoService.cboEstado}">
									<f:selectItem itemLabel="TODOS" itemValue="-1" noSelectionOption="true" />
									<f:selectItems	value="#{directivoListadoService.listaEstadoDirectivo}"
									var="estadoDirectivo" itemLabel="#{estadoDirectivo.nombre}"
									itemValue="#{estadoDirectivo.id}"></f:selectItems>								
								</h:selectOneMenu>
							</div>
							<div class="col-sm-4 form-group">
								<p:outputLabel for="cboTipoFinalizacion" value="Tipo Finalización del Censo:" />
								<h:selectOneMenu id="cboTipoFinalizacion" value="#{directivoListadoService.cboTipoFinalizacion}" styleClass="form-control">
									<f:selectItem itemLabel="Todos" itemValue="-1" noSelectionOption="true" />
									<f:selectItem itemLabel="Automático" itemValue="A" />
									<f:selectItem itemLabel="Manual" itemValue="M" />
								</h:selectOneMenu>
						</div>
					</div>
					
					<div class="row">
						<div class="col-sm-4 form-group">
							<p:outputLabel for="departamento" value="Departamento" />
							<h:selectOneMenu id="departamento" value="#{directivoListadoService.cboUbigeoDepartamento}" styleClass="form-control">
								<f:selectItem itemLabel="TODOS" itemValue="00" noSelectionOption="true" />
								<p:ajax listener="#{directivoListadoService.onDepartamentoFiltroChange}" update="cboProv,cboDis" />
								<f:selectItems  value="#{directivoListadoService.listaDepartamentos}"
												var="departamento" itemLabel="#{departamento.descripcion}"
												itemValue="#{departamento.codigo}" />
							</h:selectOneMenu>
						</div>
						<div class="col-sm-4 form-group">
							<p:outputLabel for="cboProv" value="Provincia" />
							<h:selectOneMenu id="cboProv" value="#{directivoListadoService.cboUbigeoProvincia}" styleClass="form-control">
								<f:selectItem itemLabel="TODOS" itemValue="00" noSelectionOption="true" />
								<p:ajax listener="#{directivoListadoService.onProvinciaFiltroChange}" update="cboDis" />
								<f:selectItems value="#{directivoListadoService.listaProvincias}" var="provincia" itemLabel="#{provincia.descripcion}"
									itemValue="#{provincia.codigo}" />
							</h:selectOneMenu>
						</div>
						<div class="col-sm-4 form-group">
							<p:outputLabel for="cboDis" value="Distrito" />
							<h:selectOneMenu id="cboDis" value="#{directivoListadoService.cboUbigeoDistrito}" styleClass="form-control">
								<f:selectItem itemLabel="TODOS" itemValue="00" 	noSelectionOption="true" />
								<f:selectItems value="#{directivoListadoService.listaDistritos}"	var="distrito" itemLabel="#{distrito.descripcion}"
									itemValue="#{distrito.codigo}" />
							</h:selectOneMenu>
						</div>
					</div>
					<div class="btnAction row no-gutter">
						<div class="text-right">
							<p:commandButton styleClass="btn btn-success" style="padding: 10px;" icon="ui-menuitem-icon ui-icon fa fa-plus" iconPos="right" value="Crear Nuevo"
									action="directivos_registro.jsf" disabled="${directivoListadoService.deshabilitar}"></p:commandButton>
							
							<p:commandButton update="singleDT messages"  styleClass="btn btn-success btn-buscar"  
							icon="ui-menuitem-icon ui-icon fa fa-save" iconPos="right" value="Buscar" actionListener="#{directivoListadoService.buscarDirectivos}"/>
							
							<p:commandButton update=":frmDirectivo" styleClass="btn btn-view" value="Limpiar" actionListener="#{directivoListadoService.limpiar}"/>							
						</div>
					</div>					

					<p:dataTable id="singleDT" var="directivo"
						value="#{directivoListadoService.listaDirectivos}"
						widgetVar="directivoTable"
						emptyMessage="No se han encontrado registros" rows="20"
						paginator="true" styleClass="display"
						paginatorPosition="bottom"
						currentPageReportTemplate="Total Registros : {totalRecords}"
						paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
						rowKey="#{directivo.nroDocumento}">						

						<p:column headerText="DNI" sortBy="#{directivo.nroDocumento}" >
							<h:outputText value="#{directivo.nroDocumento}" />
						</p:column>
						<p:column headerText="Nombre">
							<h:outputText value="#{directivo.nombreCompleto}" />
						</p:column>
						<p:column headerText="Ap. Paterno">
							<h:outputText value="#{directivo.apellidoPaterno}" />
						</p:column>
						<p:column headerText="Ap. Materno" filterMatchMode="contains">
							<h:outputText value="#{directivo.apellidoMaterno}" />
						</p:column>
						<c:if test="${loginService.usuario.perfilId != 5}">
							<p:column headerText="Sector">
								<h:outputText value="#{directivo.nombreSector}" />
							</p:column>
							<p:column headerText="Entidad">
								<h:outputText value="#{directivo.nombreEntidad}"/>
							</p:column>
						</c:if>
						<p:column headerText="Estado Directivo">
							<h:outputText value="#{directivo.estadoDirectivo}">
							</h:outputText>
						</p:column>
						<p:column headerText="Estado Registro">
							<h:outputText value="#{directivo.nombreEstado}">
							</h:outputText>
						</p:column>
						<p:column style="text-align: center; width:150px;">
							<f:facet name="header">
								Acciones
							</f:facet>
							<c:if test="#{!directivoListadoService.soloConsulta}">
								<h:link id="censo" value="#{directivo.idEstadoDirectivo eq '4' or directivo.idEstadoDirectivo eq '5' or directivo.censo.estadoRegistro eq 'N'?'Ver':'Editar'}" outcome="directivos_registro">
									<f:param name="directivo_id" value="#{directivo.idDirectivoPublico}" />
								</h:link>
								<br/>
								<h:link id="censoFicha" value="Ficha"
									rendered="${directivoListadoService.usuario.perfilId != 5}" 
									outcome="directivos_ficha">
									<f:param name="directivo_id" value="#{directivo.idDirectivoPublico}" />
								</h:link>
								<br/>
								<p:commandLink update="singleDT :frmDirectivo:messages" id="deshabilitar" value="Dar de Baja" 
									rendered="${3 >= directivo.idEstadoDirectivo} or directivo.censo.estadoRegistro eq 'S'"
									action="#{directivoListadoService.activarInactivar(directivo,'0')}">
									<p:confirm header="Confirmación" message="¿Está seguro de dar de baja el Directivo seleccionado?" icon="ui-icon-alert" />	
								</p:commandLink>
								<br/>
								<p:commandLink oncomplete="muestraDialogoAmpliacion();"
									rendered="${directivoListadoService.usuario.perfilId != 5 and (directivo.idEstadoDirectivo == 2 or directivo.idEstadoDirectivo == 3) and directivo.censo.estadoRegistro eq 'S'}"
									update=":formAmpliacion"
									value="Ampliar Censo.Direc."
									actionListener="#{directivoListadoService.seleccionaAmpliaCensoDirectivo(directivo)}">
									<f:setPropertyActionListener value="#{directivo}" target="#{directivoListadoService.directivo}" />
								</p:commandLink>
							</c:if>
							<c:if test="#{directivoListadoService.soloConsulta}">
								<h:link id="censo" value="Ver" outcome="directivos_ficha">
									<f:param name="directivo_id" value="#{directivo.idDirectivoPublico}" />
								</h:link>
							</c:if>
				        </p:column>
						
						<f:facet name="footer">
						&nbsp;
						<c:if test="#{directivoListadoService.listaDirectivos.size() > 0}">
							<div style="float: left; border: 0px solid #222; background-color: transparent">
							<c:if test="#{!directivoListadoService.soloConsulta}">
								<p:commandButton styleClass="btn btn-success" style="#{directivoListadoService.cboEstado eq '1'?'display:block;':'display:none'}"
									value="Informar Habilitación" update="singleDT :frmDirectivo:messages"
									actionListener="#{directivoListadoService.informarDirectivos}">
									<p:confirm header="Confirmación"
										message="¿Está seguro de enviar correo de habilitación a los directivos seleccionados?"
										icon="ui-icon-alert" />
								</p:commandButton>
								
								<p:commandButton styleClass="btn btn-success" 
										value="Ampliar Registro de Directivos"
										oncomplete="muestraDialogoAmpliacion();"
										update=":formAmpliacion "
										rendered="#{(directivoListadoService.cboEstado eq '2' or directivoListadoService.cboEstado eq '3') and directivoListadoService.cboCenso ne '-1'}"
										actionListener="#{directivoListadoService.ampliarRegistroDirectivos}">
									</p:commandButton>
									</c:if>
							</div>	
							<div style="clear: both;"></div>
							</c:if>						
						</f:facet>
						
					</p:dataTable>
				</h:form>
			</div>
		</div>
		
		<p:confirmDialog global="true" showEffect="fade"
			hideEffect="explode" closeOnEscape="true" rendered="true" width="30%">
			<p:commandButton value="Si" type="button"
			styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
			<p:commandButton value="No" type="button"
			styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
		</p:confirmDialog>
		
		<p:dialog width="285" widgetVar="ampliacionDialogo" modal="true" showEffect="fade" hideEffect="fade" resizable="false" closable="false">
			<h:form id="formAmpliacion" >
				<p:messages id="messagesAmpliacion" redisplay="false" />
				<div class="row no-gutter">
					<div class="col-sm-12 form-group">
						<p:outputLabel id="lblOpcion" value="Seleccione Fecha de Ampliación" />
						<p:calendar id="txtFechaAmp" value="#{directivoListadoService.txtFechaFinHabExt}" pattern="dd/MM/yyyy" disabled="true" />
						<p:calendar id="calFecHaAmp" value="#{directivoListadoService.txtFechaFinHabExt}" 
							mode="inline"
							required="true" locale="es" navigator="true" mindate="#{directivoListadoService.txtFechaFinHabExtValida}"
							requiredMessage="Seleccione Fecha de Ampliación." disabledWeekends="true">
							<p:ajax event="dateSelect" update="txtFechaAmp" />
						</p:calendar>
					</div>
				</div>
				<div class="btnAction row no-gutter">
					<div class="text-right">
						<p:commandButton id="cancelOpcion" styleClass="btn btn-success"
							value="Cerrar" oncomplete="PF('ampliacionDialogo').hide();" widgetVar="cancelarAmpliacion" 
							icon="fa fa-undo" iconPos="right" />
						<p:commandButton id="addOpcion" styleClass="btn btn-success"
							update="messagesAmpliacion" value="Grabar" 
							actionListener="#{directivoListadoService.ampliarRegistroDirectivo}" 
							onclick="jQuery('#formAmpliacion\\:messagesAmpliacion').fadeOut();PF('cancelarAmpliacion').disable();PF('grabarAmpliacion').disable();" widgetVar="grabarAmpliacion"
							oncomplete="PF('cancelarAmpliacion').enable();PF('grabarAmpliacion').enable();"
							icon="fa fa-floppy-o" iconPos="right">
							<p:confirm header="Confirmación"
										message="¿Está seguro de ampliar la fecha final de censo a los directivos seleccionados?"
										icon="ui-icon-alert" />
						</p:commandButton>
					</div>
				</div>
			</h:form>
		</p:dialog>
		
	</ui:define>
	<ui:define name="script">
	</ui:define>
</ui:composition>